package com.zkj.util;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;

import com.zkj.util.Bean.BaseCodeBean;

/**
 * 工具类
 * 
 * 输出数字或者文字验证码图片
 * 
 * @author zkj
 * 
 */
public class YanZhengma {

	/**
	 * 生成验证码图片
	 * 
	 * @param type
	 *            数字or文字
	 * @param width
	 *            图片宽度
	 * 
	 * @param height
	 *            图片高度
	 */
	public static BufferedImage MakeNewYanZhengMa(String type, int width,
			int height) {
		// 1、创建一副内存图片
		BufferedImage b = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_RGB);
		// 2、得到画笔
		Graphics g = b.getGraphics();
		// 3、设置边框
		g.setColor(Color.PINK);
		g.drawRect(0, 0, width, height);
		// 4、设置背景颜色
		g.setColor(Color.YELLOW);
		g.fillRect(1, 1, width - 2, height - 2);
		// 5、设置干扰线
		g.setColor(Color.GRAY);
		Random r = new Random();
		Random p = new Random();
		for (int i = 0; i < 15; i++) {

			g.drawLine(r.nextInt(width), r.nextInt(height), p.nextInt(width),
					p.nextInt());
		}

		// 5、填充数字或者文字
		g.setFont(new Font("宋体", Font.BOLD | Font.ITALIC, 28));
		int x = 32;
		if (type.equals("shuzi")) {
			// 生成数字验证码
			for (int i = 0; i < 4; i++) {
				g.drawString(r.nextInt(10) + "", x, 30);
				x += 38;
			}
		} else {
			String hzCode = BaseCodeBean.getBaseCose();
			for (int i = 0; i < 4; i++) {
				char c = hzCode.charAt(r.nextInt(hzCode.length()));
				g.drawString(c + "", x, 30);
				x += 38;
			}
		}

		// 6、BufferedImage
		return b;
	}
}
